﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnitTestSample2;

namespace TestClass
{
    /// <summary>
    /// テストクラス１
    /// </summary>
    public class CalcTest : UnitTest
    {
        /*
         * テストメソッドはvoid型でパラメーターなし、"test_"で始まる名称とする。
         */

        public void test_加算()
        {
            var calc = new Calculator();
            AssertEqual(8, calc.Add(3, 5));
        }

        public void test_減算()
        {
            var calc = new Calculator();
            AssertEqual(2, calc.Sub(5, 3));
        }

        public void test_乗算()
        {
            var calc = new Calculator();
            AssertEqual(15, calc.Multi(5, 3));
        }

        public void test_乗算_0を掛ける()
        {
            var calc = new Calculator();
            AssertEqual(0, calc.Multi(5, 0));
            AssertEqual(0, calc.Multi(0, 5));
        }

        public void test_除算()
        {
            var calc = new Calculator();
            AssertEqual(5, calc.Div(10, 2));
        }

        public void test_除算_0で割る()
        {
            var calc = new Calculator();
            try
            {
                var ans = calc.Div(10, 0);
                AssertNG("0の除算で例外が発生しない。");
            }
            catch (Exception){}
        }

        public void 除算＿0を割る()
        {
            var calc = new Calculator();
            AssertEqual(0.0, calc.Div(0, 10));
        }
    }

    public class StringUtilTest : UnitTest
    {
        public void test_文字連結()
        {
            StringUtil util = new StringUtil();
            AssertEqual("あああ_いいい", util.Concat("あああ", "いいい"));
        }

        public void test_文字抽出()
        {
            StringUtil util = new StringUtil();
            AssertEqual("おかきくけこ", util.Sub("あいうえおかきくけこ", "おかき"));
        }

        public void test_文字抽出_対象が存在しない()
        {
            StringUtil util = new StringUtil();
            AssertEqual("あいうえおかきくけこ", util.Sub("あいうえおかきくけこ", "さしす"));
        }
    }
}
